package br.urca.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "GE_FUNCIONARIOS")
public class Funcionario {

	public static final String SITUACAO_ATIVO = "A";
	public static final String SITUACAO_CEDIDO = "C";
	public static final String SITUACAO_A_DISPOSICAO = "D";
	public static final String SITUACAO_AFASTADO = "T";
	public static final String SITUACAO_EXONERADO = "E";
	public static final String SITUACAO_APOSENTADO = "F";
	public static final String SITUACAO_FALECIDO = "G";

	public static final int TAMANHO_MINIMO_SENHA = 6;
	public static final int TAMANHO_MAXIMO_SENHA = 30;

	@Id
	@Column(name = "MATRICULA")
	private String matricula;

	@Column(name = "NOME")
	private String nome;

	@ManyToOne
	@JoinColumns({
			@JoinColumn(name = "COD_INSTITUICAO", referencedColumnName = "COD_INSTITUICAO"),
			@JoinColumn(name = "COD_SETOR", referencedColumnName = "COD_SETOR") })
	private Setor setor;

	@ManyToOne
	@JoinColumn(name = "COD_CARGO", referencedColumnName = "COD_CARGO_FUNCAO")
	private Cargo cargo;

	@Column(name = "E_MAIL")
	private String email;

	@Column(name = "SITUACAO")
	private String situacao;

	@Column(name = "IDENTIFICADOR")
	private int identificador;

	@Column(name = "SENHA_2")
	private String senha2;

	@Column(name = "COMPLEMENTO_SENHA")
	private String complementoSenha;

	@Column(name = "SENHA_2_MODIFICADA")
	private boolean senhaAlterada;
	
	@Column(name = "SENHA_MD5", columnDefinition = "VARCHAR(32)")
	private String senhaMD5;
	
	public Funcionario() { }

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Setor getSetor() {
		return setor;
	}

	public void setSetor(Setor setor) {
		this.setor = setor;
	}

	public Cargo getCargo() {
		return cargo;
	}

	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getSituacao() {
		return situacao;
	}

	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}

	public int getIdentificador() {
		return identificador;
	}

	public void setIdentificador(int identificador) {
		this.identificador = identificador;
	}

	public String getSenha2() {
		return senha2;
	}

	public void setSenha2(String senha2) {
		this.senha2 = senha2;
	}

	public String getComplementoSenha() {
		return complementoSenha;
	}

	public void setComplementoSenha(String complementoSenha) {
		this.complementoSenha = complementoSenha;
	}

	public boolean isSenhaAlterada() {
		return senhaAlterada;
	}

	public void setSenhaAlterada(boolean senhaAlterada) {
		this.senhaAlterada = senhaAlterada;
	}

	public String getSenhaMD5() {
		return senhaMD5;
	}

	public void setSenhaMD5(String senhaMD5) {
		this.senhaMD5 = senhaMD5;
	}
	

}
